Сегодня я хочу предложить вам рассмотреть вопрос об оценки сети с точки зрения текстов покупателей о сети “Улыбка Радуги” и отзывов сотрудников о работе в компании. Данные, представлены в виде двух таблиц - первая содержит комментарии покупателей, никнейм, оценку сети, а также дату написания комментария.Помимо нашей компании в данный датасет попали также комментарии по нашим главным конкурентам - Сети “Подружка”, “Магнит косметик” и Летуаль. Вторая таблица - отзывы сотрудников только о сети “Улыбка радуги”.Вторая таблица состоит из отзывов сотрудников, даты, должности, города, где сотрудник работал. Данные были спарсены с сайтов ireccomend и dreamjob.

Цели данного исследования проверить :

  1. О чем чаще всего пишут наши покупатели в комментариях

  2. Какие главные проблемы существуют (выделить темы)

  3. Чем мы похожи, а чем отличаемся от наших главных конкурентов

  4. На что больше всего жалуются наши сотрудники

  5. Выявить проблемны по должностям и времени

  6. Оценить настроения по комментариям наших покупателей и сотрудников

Загружаем данные

## # A tibble: 6 × 7
##     Num Authors          Quotes           Date                Texts Rating Shop 
##   <dbl> <chr>            <chr>            <dttm>              <chr>  <dbl> <chr>
## 1     0 Marylovely05     "Хороший магази… 2022-07-31 00:00:00 "Здр…      4 Rain…
## 2     1 Lunnai           "Где брать самы… 2019-11-20 00:00:00 "Есл…      5 Rain…
## 3     2 Katie_boo        "Сегодня я поте… 2013-05-06 00:00:00 "Маг…      3 Rain…
## 4     3 Annetta_M21      "Всё о бонусной… 2021-01-16 00:00:00 "Пар…      4 Rain…
## 5     4 _Melody of Love_ "Любимый магази… 2021-03-18 00:00:00 "ут …      5 Rain…
## 6     5 DaryaMas         "Я \"подсела\" … 2016-08-11 00:00:00 "При…      5 Rain…
## # A tibble: 6 × 5
##   Column1 date                Messsage                             City  Позиция
##     <dbl> <dttm>              <chr>                                <chr> <chr>  
## 1       0 2022-09-29 00:00:00 Их очень много, начиная с директора… Иван… Продав…
## 2       1 2022-09-13 00:00:00 Брали на менеджера по развитию. Счи… Ярос… Продав…
## 3       2 2022-09-11 00:00:00 Так называемые стандарты компании э… Моск… Продав…
## 4       3 2022-08-28 00:00:00 1. Зарплата маленькая. Отпахала вес… Моск… Продав…
## 5       4 2022-08-07 00:00:00 1)Вам придется заниматься одним из … Моск… Продав…
## 6       5 2022-08-05 00:00:00 Теряете больше двух недель на разли… Санк… Продав…

Посмотрим на структуру и данные

За 2021 год всего было написано 11 комментариев, а за 2022 7.Пик написания комментариев приходится на лето для всех сетей. Сотрудники чаще всего пишут комментарии в Санкт-Петербурге.Пик написания отзывов приходится на ноябрь-декабрь.

Приступим к текстам

Для начала посмотрим, насколько отзывы похожи

## [1] 4909

Частотность языковых знаков. Закон Ципфа

Стоп-слова

Самые частотные слова в языке — предлоги, союзы, местоимения — имеют самые абстрактные значения. Если нас интересует содержание текста, они для нас неинформативны. Назовем их «стоп-слова» и попробуем выкинуть из текста.

В пакете stopwords уже есть заготовленный список стоп-слов для русского языка (и не только для русского).

##  [1] "и"   "в"   "во"  "не"  "что" "он"  "на"  "я"   "с"   "со"  "как" "а"  
## [13] "то"  "все" "она" "так" "его" "но"  "да"  "ты"

Мы уже видели очень похожий список…

##   [1] "в"            "и"            "я"            "не"           "на"          
##   [6] "что"          "с"            "магазин"      "но"           "то"          
##  [11] "как"          "а"            "магазинов"    "у"            "всем"        
##  [16] "о"            "магнит"       "для"          "по"           "это"         
##  [21] "так"          "магазине"     "мне"          "меня"         "очень"       
##  [26] "косметик"     "радуги"       "привет"       "все"          "за"          
##  [31] "этот"         "есть"         "там"          "из"           "сети"        
##  [36] "от"           "сеть"         "сегодня"      "улыбка"       "подружка"    
##  [41] "магазина"     "день"         "отзыв"        "летуаль"      "городе"      
##  [46] "косметики"    "туда"         "к"            "было"         "раз"         
##  [51] "можно"        "уже"          "давно"        "же"           "когда"       
##  [56] "магазины"     "нет"          "часто"        "их"           "один"        
##  [61] "он"           "времени"      "до"           "или"          "много"       
##  [66] "про"          "просто"       "доброго"      "хочу"         "этом"        
##  [71] "вот"          "купить"       "л'этуаль"     "только"       "была"        
##  [76] "дома"         "покупки"      "цены"         "ассортимент"  "добрый"      
##  [81] "косметику"    "15"           "если"         "нас"          "бы"          
##  [86] "всегда"       "лет"          "назад"        "решила"       "года"        
##  [91] "суток"        "здравствуйте" "вам"          "них"          "1"           
##  [96] "где"          "даже"         "его"          "да"           "который"     
## [101] "рассказать"

Выбросим из текстов стоп-слова и посмотрим, что осталось.

Важно: если мы используем anti_join, то колонки, в которых хранятся слова, должны быть названы одинаково в обоих датасетах (vv.tidy и rustopwords), чтобы датасеты соединились автоматически, либо в anti_join нужно прописать параметр by

## Joining, by = "words"

На сколько процентов уменьшился объем текста?

Облако слов

Теперь построим список самых частотных слов в форме облака слов.

Построим частотные списки для текстовдля каждой сети в виде облаков слов. Используем список стоп-слов из пакета stopwords.

## # A tibble: 55 × 2
##    words         n
##    <chr>     <int>
##  1 радуги       92
##  2 магазин      69
##  3 улыбка       69
##  4 магазине     32
##  5 это          30
##  6 очень        29
##  7 туда         25
##  8 магазинов    24
##  9 всем         21
## 10 рядом        21
## # … with 45 more rows
## Joining, by = "words"
## Joining, by = "words"
## Joining, by = "words"

Оставим только стоп-слова:

## Joining, by = "words"

Используем для стилометрии. Чтобы нарисовать на двумерном графике представление по осям, соответствующим всем нашим местоимениям, будем использовать анализ главных компонент (“собирать” оси в более крупные компоненты)

## Joining, by = "words"
##                  Letual Rainbow_smile  Podrugka    Magnit
## Letual        1.0000000     0.9872282 0.9983552 0.9973986
## Rainbow_smile 0.9872282     1.0000000 0.9860939 0.9890399
## Podrugka      0.9983552     0.9860939 1.0000000 0.9962191
## Magnit        0.9973986     0.9890399 0.9962191 1.0000000

Тексты очень похожи .

Удалим стоп-слова, а также слишком редкие слова по порогу (те, что встретились меньше 5 раз).

## Joining, by = "words"`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

## 55% 
##   1
## 65% 
##   1

После всей чистки у нас осталось сильно меньше слов, чем было изначально. Поэтому от некоторых отзывов могло или совсем ничего или пара слов. Уберем такие отзывы из базы для дальнейшего анализа.

## # A tibble: 471 × 6
##    Shop   words         n      tf   idf   tf_idf
##    <chr>  <chr>     <int>   <dbl> <dbl>    <dbl>
##  1 Letual 8             2 0.00692 0     0       
##  2 Letual брендов       3 0.0104  0     0       
##  3 Letual буквально     1 0.00346 0.288 0.000995
##  4 Letual бывает        1 0.00346 0.288 0.000995
##  5 Letual бывают        2 0.00692 0.288 0.00199 
##  6 Letual быстро        1 0.00346 0.288 0.000995
##  7 Letual вами          2 0.00692 0     0       
##  8 Letual вполне        3 0.0104  0.693 0.00720 
##  9 Letual времена       4 0.0138  0.693 0.00959 
## 10 Letual всякие        1 0.00346 0.288 0.000995
## # … with 461 more rows

Если у нас уже есть частоты в длинном формате, то в широкий их можно преобразовать с помощью функций из пакета tidyr – pivot_wider()

Посчитаем косинусное расстояние между двумя векторами отзывов. Эти два текста наиболее похожи друг на друга.

##           [,1]
## [1,] 0.2443358
##           [,1]
## [1,] 0.2419396
##           [,1]
## [1,] 0.3304086

Больше всего отзывы про Улыбку Радуги похожи на отзывы про Магнит косметик. Ок, но про что пишут наши покупатели и какая эмоциональная окраска присутствуетсв каждом отзыве по магазинам?

Так, для каждого отзыва мы можем посчитать, насколько оценочный характер он носит – без привязки к характеру (позитивный или негативный).

## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ tibble  3.1.7     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ✓ purrr   0.3.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x lubridate::as.difftime() masks base::as.difftime()
## x lubridate::date()        masks base::date()
## x plotly::filter()         masks dplyr::filter(), stats::filter()
## x lubridate::intersect()   masks base::intersect()
## x dplyr::lag()             masks stats::lag()
## x lubridate::setdiff()     masks base::setdiff()
## x lubridate::union()       masks base::union()
## Joining, by = "words"Joining, by = "words"
## # A tibble: 6 × 2
##   Authors   mean
##   <chr>    <dbl>
## 1 gwenh    0.798
## 2 Ксения66 0.71 
## 3 0910     0.699
## 4 Annelisa 0.693
## 5 Ivica    0.669
## 6 DyxLEzz  0.642
## [1] "В нашем городе несколько магазинов Л'Этуаль. Я была в трех. И один из них полюбился мне больше всех. Вежливые, но ненавязчивые консультанты, охранники за тобой не шастают по пятам. Но, как известно, от любви до ненависти... Все испортил один неудачный заказ ."
## # A tibble: 6 × 2
##   Authors       mean
##   <chr>        <dbl>
## 1 Posteriori   0.149
## 2 VIKSIII      0.149
## 3 ЮляЖемчужина 0.153
## 4 Mrs.Irene    0.154
## 5 Tamara_jerry 0.156
## 6 Каа          0.159
## [1] "Всем привет. Хочу поделиться неприятным опытом от посещения магазинов \"Подружка\". До недавних пор я была частым посетителем сей сети и вот,однажды, смотря их сайт в поисках интересующего продукта,я увидела,что он учавствует в акции и продается за 69 руб."
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

А если брать только Улыбку радуги?

Так, для каждого отзыва мы можем посчитать, насколько оценочный характер он носит – без привязки к характеру (позитивный или негативный).

## Joining, by = "words"Joining, by = "words"
## # A tibble: 6 × 2
##   Authors       mean
##   <chr>        <dbl>
## 1 Ivica        0.669
## 2 ashleek      0.638
## 3 Dtpexfz      0.567
## 4 gerastikez   0.523
## 5 Анастасия K. 0.512
## 6 Vinograd666  0.499
## [1] "Всем привет))) Не знаю почему многие так плохо отзываются о магазине, но у меня совершенно другое мнение о нем. Живу я не в Санкт-Петербурге, а в Мурманске и ни разу не сталкивалась с плохим отношением продавцов и тем более их начальством."
## # A tibble: 6 × 2
##   Authors        mean
##   <chr>         <dbl>
## 1 BLONDINKA48   0.175
## 2 radz428       0.186
## 3 Елена Шатская 0.194
## 4 Happy day     0.197
## 5 Vokramka      0.198
## 6 mamairiwka27  0.199
## [1] "Часто ходила мимо этого магазина, потому что раньше не знала о нем. Один раз потребовались средства женской гигиены, а я как раз шла мимо, вот так впервые и зашла."                                                                                                                
## [2] "Я не постоянный клиент данной сети магазинов, потому что на это влияет их расположение - в отдаленных ТЦ. Недавно зашла сюда во второй раз - проходила мимо, зашла за шампунем в маленькой упаковке. Обстановка в магазине располагающая, цены приемлемые, много акционных товаров."
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# Our dict

Теперь мы можем попытаться создать свой специфичный для наших данных сентимент-словарь.

Возьмем за отрицательные отзывы все те, кто оценил отель на 1-2 балла, а положительные – на 5. Посмотрим распределение оценок посетителей

Отберем оценочные слова из словаря Четверкина, характерные для каждого из классов с помощью PMI.

Dunning log-likelihood (G2)

Посмотрим на соотношения частотности, PMI и G2:

Теперь посмотрим- о чем конкретно пишут наши покупатели, лематизизируя слова, отобрав самые часто встречающиеся словосочетания и,систематизируя используя семантический контекст, мы составим словосочетания в зависимости от части речи.

Пока что единицей измерения текста у нас были отдельные слова. Тем самым мы полностью игнорировали информацию о последовательности слов в тексте. По этой причине векторное представление документа еще называют «мешком слов» (bag of words), потому что мы рассматриваем набор слов, но не их порядок. Однако есть простой способ, принципиально не меняя наших инструментов измерения текста, инкорпорировать в них информацию о последовательности слов — n-граммы. Вместо одного слова возьмем в качестве единицы несколько стоящих подряд слов.

## starting httpd help server ... done
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D206 / R206C4: got '06-04-2020 - 18:19'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D257 / R257C4: got '06-04-2020 - 18:19'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D308 / R308C4: got '20-02-2021 - 12:38'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D309 / R309C4: got '17-06-2019 - 15:52'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D310 / R310C4: got '11-01-2020 - 16:07'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D311 / R311C4: got '25-11-2014 - 17:52'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D312 / R312C4: got '01-07-2019 - 15:34'
## Downloading udpipe model from https://raw.githubusercontent.com/jwijffels/udpipe.models.ud.2.5/master/inst/udpipe-ud-2.5-191206/russian-gsd-ud-2.5-191206.udpipe to /students2020/vvyunosheva/russian-gsd-ud-2.5-191206.udpipe
##  - This model has been trained on version 2.5 of data from https://universaldependencies.org
##  - The model is distributed under the CC-BY-SA-NC license: https://creativecommons.org/licenses/by-nc-sa/4.0
##  - Visit https://github.com/jwijffels/udpipe.models.ud.2.5 for model license details.
##  - For a list of all models and their licenses (most models you can download with this package have either a CC-BY-SA or a CC-BY-SA-NC license) read the documentation at ?udpipe_download_model. For building your own models: visit the documentation by typing vignette('udpipe-train', package = 'udpipe')
## Downloading finished, model stored at '/students2020/vvyunosheva/russian-gsd-ud-2.5-191206.udpipe'
## 'data.frame':    1 obs. of  5 variables:
##  $ language        : chr "russian-gsd"
##  $ file_model      : chr "/students2020/vvyunosheva/russian-gsd-ud-2.5-191206.udpipe"
##  $ url             : chr "https://raw.githubusercontent.com/jwijffels/udpipe.models.ud.2.5/master/inst/udpipe-ud-2.5-191206/russian-gsd-u"| __truncated__
##  $ download_failed : logi FALSE
##  $ download_message: chr "OK"

## 
## Attaching package: 'rakeR'
## The following object is masked from 'package:tidyr':
## 
##     extract
## The following object is masked from 'package:stats':
## 
##     simulate
##                  keyword ngram freq     rake
## 1        взяло попросить     2    2 2.250000
## 2 самый распространенный     2    2 2.128205
## 3     нарядный добротный     2    2 2.000000
## 4      прочный картонный     2    2 2.000000
## 5            можно взять     2    2 1.960000
## 6      можно пересчитать     2    2 1.960000
##               keyword ngram freq     rake
## 1 широкий ассортимент     2    2 4.317073
## 2       бытовой химия     2   14 4.227957
## 3 шаговый доступность     2    4 4.202381
## 4        долгий время     2    2 3.533333
## 5  красивый украшение     2    2 3.461538
## 6    дисконтный карта     2    3 3.333333
##                                     keyword ngram freq      rake
## 1 улыбка радуга Ангелов переулок дом корпус     6    2 15.976917
## 2                    Привет девочка Поболта     3    2  3.714286
## 3                   магазин "Улыбкий радуга     3    3  3.403124
## 4               опыт посещение сеть магазин     4    2  3.361394
## 5                    магазин "улыбка радуга     3    3  3.307886
## 6                      категория куча отзыв     3    2  3.304762

Кажется,чтобы понять как о нас отзываются - следует изъять прилагательное с существительным, а затем посмотрееть, положительные и отризательные эти n-gramms.

## Joining, by = "words"
## # A tibble: 112 × 2
##    words          mean
##    <chr>         <dbl>
##  1 балл          0.163
##  2 безысходность 0.369
##  3 ближайший     0.204
##  4 близкий       0.386
##  5 большой       0.172
##  6 бонус         0.145
##  7 бывать        0.304
##  8 бытовой       0.25 
##  9 важный        0.47 
## 10 вежливый      0.276
## # … with 102 more rows
## stm v1.3.6 successfully loaded. See ?stm for help. 
##  Papers, resources, and other materials at structuraltopicmodel.com
## 
## Attaching package: 'stm'
## The following object is masked from 'package:lattice':
## 
##     cloud

Тематика

Мы рассмотрели комментарии на похожесть, посмотрели их эмоциональную окраску, составили самые часто встречающиеся словосочетания по части речи и выяснили - какова их окраска.

Теперь посмотрим на предполагаемую тематику .( на какие темы мы можем разбить наши комментарии).

Тематическая модель: - каждый текст в корпусе представляет собой смесь из определённого количества тем - «тема» — набор слов, которые могут с разными вероятностями употребляться при обсуждении данной темы - топики распределены в каждом документе по-разному, и выраженность темы в тексте определяется тем, насколько чаще слова из этой темы встречаются чаще остальных

Структурная тематическая модель: характеристики тематической модели + - возможность выяснить, как пропорция слов каждого топика в документе меняется в зависимости от ковариатов – категорий, присвоенных каждому тексту исследователем (prevalence covariates) - возможность выяснить, как категория текста влияет на распределение слов внутри темы (например, как разные политические партии говорят о демократии) - позволяет посмотреть на корреляцию тем (насколько часто они обсуждаются в одном документе)

## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D206 / R206C4: got '06-04-2020 - 18:19'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D257 / R257C4: got '06-04-2020 - 18:19'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D308 / R308C4: got '20-02-2021 - 12:38'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D309 / R309C4: got '17-06-2019 - 15:52'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D310 / R310C4: got '11-01-2020 - 16:07'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D311 / R311C4: got '25-11-2014 - 17:52'
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in D312 / R312C4: got '01-07-2019 - 15:34'
## Building corpus... 
## Converting to Lower Case... 
## Removing punctuation... 
## Removing stopwords... 
## Removing numbers... 
## Stemming... 
## Creating Output...
## Removing 3212 of 4864 terms (3212 of 15190 tokens) due to frequency 
## Your corpus now has 504 documents, 1652 terms and 11978 tokens.

## Removing 4699 of 4864 terms (9101 of 15190 tokens) due to frequency 
## Your corpus now has 504 documents, 165 terms and 6089 tokens.
## Beginning Spectral Initialization 
##   Calculating the gram matrix...
##   Finding anchor words...
##      ............
##   Recovering initialization...
##      .
## Initialization complete.
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 1 (approx. per word bound = -4.875) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 2 (approx. per word bound = -4.761, relative change = 2.341e-02) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 3 (approx. per word bound = -4.718, relative change = 9.049e-03) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 4 (approx. per word bound = -4.696, relative change = 4.761e-03) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 5 (approx. per word bound = -4.682, relative change = 2.974e-03) 
## Topic 1: что, подружка, магазин, магазина, магазинов 
##  Topic 2: это, его, магазине, здравствуйте, улыбку 
##  Topic 3: времени, доброго, суток, раз, всем 
##  Topic 4: летуаль, меня, отзыв, очень, это 
##  Topic 5: мне, всем, привет, магазинов, хочу 
##  Topic 6: как, этот, магазин, так, там 
##  Topic 7: что, вот, все, люблю, мне 
##  Topic 8: для, купить, есть, очень, косметика 
##  Topic 9: радуги, улыбка, магазин, рядом, дома 
##  Topic 10: магнит, косметик, городе, магазинов, сеть 
##  Topic 11: всем, лэтуаль, привет, так, все 
##  Topic 12: каждый, или, что, магазине, только 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 6 (approx. per word bound = -4.672, relative change = 2.041e-03) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 7 (approx. per word bound = -4.666, relative change = 1.283e-03) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 8 (approx. per word bound = -4.662, relative change = 8.322e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 9 (approx. per word bound = -4.659, relative change = 6.355e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 10 (approx. per word bound = -4.657, relative change = 4.121e-04) 
## Topic 1: что, подружка, магазин, магазина, сети 
##  Topic 2: это, его, магазине, здравствуйте, этом 
##  Topic 3: времени, доброго, суток, раз, всем 
##  Topic 4: летуаль, меня, отзыв, очень, было 
##  Topic 5: мне, хочу, всем, привет, сегодня 
##  Topic 6: как, магазин, этот, так, день 
##  Topic 7: что, все, вот, мне, люблю 
##  Topic 8: для, купить, очень, можно, магазины 
##  Topic 9: радуги, улыбка, магазин, рядом, домом 
##  Topic 10: магнит, косметик, городе, магазинов, сеть 
##  Topic 11: всем, лэтуаль, привет, все, почему 
##  Topic 12: или, магазине, каждый, только, есть 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 11 (approx. per word bound = -4.656, relative change = 3.169e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 12 (approx. per word bound = -4.655, relative change = 1.748e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 13 (approx. per word bound = -4.654, relative change = 1.529e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 14 (approx. per word bound = -4.654, relative change = 1.612e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 15 (approx. per word bound = -4.653, relative change = 1.528e-04) 
## Topic 1: подружка, что, магазин, магазина, сети 
##  Topic 2: это, его, этом, часто, магазине 
##  Topic 3: времени, доброго, суток, раз, если 
##  Topic 4: меня, летуаль, отзыв, очень, было 
##  Topic 5: сегодня, всем, мне, привет, хочу 
##  Topic 6: как, магазин, этот, так, день 
##  Topic 7: что, мне, все, вот, люблю 
##  Topic 8: для, очень, можно, купить, магазины 
##  Topic 9: радуги, улыбка, магазин, рядом, домом 
##  Topic 10: магнит, косметик, городе, магазинов, сеть 
##  Topic 11: лэтуаль, всем, привет, все, сети 
##  Topic 12: или, есть, магазине, покупки, только 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 16 (approx. per word bound = -4.652, relative change = 1.196e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 17 (approx. per word bound = -4.652, relative change = 1.221e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 18 (approx. per word bound = -4.651, relative change = 1.091e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 19 (approx. per word bound = -4.651, relative change = 9.930e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 20 (approx. per word bound = -4.650, relative change = 1.017e-04) 
## Topic 1: подружка, что, сети, магазин, магазинов 
##  Topic 2: это, этом, часто, его, магазине 
##  Topic 3: времени, доброго, суток, раз, если 
##  Topic 4: меня, летуаль, отзыв, было, очень 
##  Topic 5: сегодня, всем, привет, хочу, мне 
##  Topic 6: как, магазин, так, этот, день 
##  Topic 7: что, мне, все, вот, чтото 
##  Topic 8: для, очень, можно, купить, магазины 
##  Topic 9: радуги, улыбка, магазин, рядом, домом 
##  Topic 10: магнит, косметик, городе, магазинов, сеть 
##  Topic 11: лэтуаль, привет, всем, сети, магазинов 
##  Topic 12: есть, или, покупки, магазине, только 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 21 (approx. per word bound = -4.650, relative change = 1.187e-04) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 22 (approx. per word bound = -4.649, relative change = 9.936e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 23 (approx. per word bound = -4.649, relative change = 6.780e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 24 (approx. per word bound = -4.649, relative change = 7.178e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 25 (approx. per word bound = -4.648, relative change = 7.427e-05) 
## Topic 1: подружка, магазинов, сети, что, магазина 
##  Topic 2: это, часто, этом, его, магазине 
##  Topic 3: времени, доброго, суток, раз, отзыв 
##  Topic 4: меня, летуаль, было, очень, отзыв 
##  Topic 5: всем, сегодня, привет, хочу, городе 
##  Topic 6: как, магазин, так, этот, день 
##  Topic 7: что, мне, все, вот, чтото 
##  Topic 8: для, очень, можно, купить, магазины 
##  Topic 9: радуги, улыбка, магазин, рядом, домом 
##  Topic 10: магнит, косметик, магазинов, городе, сеть 
##  Topic 11: лэтуаль, магазинов, сети, привет, все 
##  Topic 12: есть, или, покупки, магазине, только 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 26 (approx. per word bound = -4.648, relative change = 7.024e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 27 (approx. per word bound = -4.648, relative change = 6.913e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 28 (approx. per word bound = -4.648, relative change = 6.683e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 29 (approx. per word bound = -4.647, relative change = 5.777e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 30 (approx. per word bound = -4.647, relative change = 5.044e-05) 
## Topic 1: подружка, магазинов, сети, что, магазина 
##  Topic 2: это, часто, этом, его, магазине 
##  Topic 3: времени, доброго, суток, отзыв, раз 
##  Topic 4: меня, летуаль, было, очень, мой 
##  Topic 5: всем, сегодня, привет, хочу, городе 
##  Topic 6: магазин, как, так, этот, день 
##  Topic 7: что, мне, все, вот, чтото 
##  Topic 8: для, очень, можно, купить, магазины 
##  Topic 9: радуги, улыбка, магазин, рядом, домом 
##  Topic 10: магнит, косметик, магазинов, городе, сеть 
##  Topic 11: лэтуаль, магазинов, сети, почему, все 
##  Topic 12: есть, или, покупки, магазине, только 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 31 (approx. per word bound = -4.647, relative change = 4.622e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 32 (approx. per word bound = -4.647, relative change = 4.369e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 33 (approx. per word bound = -4.646, relative change = 4.429e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 34 (approx. per word bound = -4.646, relative change = 4.426e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 35 (approx. per word bound = -4.646, relative change = 3.738e-05) 
## Topic 1: подружка, магазинов, сети, что, магазина 
##  Topic 2: это, часто, этом, его, туда 
##  Topic 3: времени, доброго, суток, отзыв, раз 
##  Topic 4: меня, летуаль, было, очень, мой 
##  Topic 5: всем, сегодня, привет, городе, хочу 
##  Topic 6: магазин, как, так, этот, день 
##  Topic 7: что, мне, все, вот, чтото 
##  Topic 8: для, очень, можно, купить, магазины 
##  Topic 9: радуги, улыбка, магазин, рядом, домом 
##  Topic 10: магнит, косметик, магазинов, сеть, городе 
##  Topic 11: лэтуаль, магазинов, сети, почему, все 
##  Topic 12: есть, или, покупки, магазине, только 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 36 (approx. per word bound = -4.646, relative change = 2.559e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Completing Iteration 37 (approx. per word bound = -4.646, relative change = 1.313e-05) 
## ....................................................................................................
## Completed E-Step (0 seconds). 
## Completed M-Step. 
## Model Converged